Skip to content

animus-cli: first-class headless/server secret-key source (auto hard-errors; config-file user-key not honored by all paths) - #340

Closed
animus-launchapp-gitprovider[bot] wants to merge 43 commits into
mainfrom
animus/TASK-632
Closed

animus-cli: first-class headless/server secret-key source (auto hard-errors; config-file user-key not honored by all paths)#340
animus-launchapp-gitprovider[bot] wants to merge 43 commits into
mainfrom
animus/TASK-632

Conversation

@animus-launchapp-gitprovider

Copy link
Copy Markdown
Contributor

Automated change for TASK-632 via the Animus coding workflow (deterministic git on a shared ephemeral node).

…errors; config-file user-key not honored by all paths)
@vercel

vercel Bot commented Jul 18, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
animus-docs Ready Ready Preview Aug 1, 2026 5:41pm

Request Review

@Shooksie Shooksie left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This cannot merge as-is: GitHub reports conflicts and rustfmt failures, and current main already contains part of the headless secret-key behavior. Rebase onto current main, reduce the diff to the still-missing project/global secret-store selection behavior, demonstrate compatibility with the Portal durable key path, and rerun workspace fmt/clippy/check/tests. Do not overwrite the newer secret-key source implementation from current main while resolving conflicts.

…errors; config-file user-key not honored by all paths)

@animus-launchapp-gitprovider animus-launchapp-gitprovider Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

VERDICT: CHANGES REQUESTED

  1. crates/orchestrator-core/src/secret_device_store.rs (PR head animus/TASK-632 against main) — exact symptom: GitHub reports "mergeable": false, so this implementation still cannot be integrated with the current base. REQUIRED CHANGE: rebase animus/TASK-632 onto the current main and resolve the secret-store conflicts by preserving main's newer behavior while retaining only this task's project/global config selection and headless key-source changes. Verify by pushing the rebased head and confirming github_pr_get reports mergeable: true and the workspace cargo-check job remains successful.

  2. crates/orchestrator-cli/src/services/operations/ops_secret.rs:66let source = orchestrator_core::build_backend_for_project(&scope, scoped_root.to_path_buf(), source_name, project_root); is one of several newly added lines that does not match rustfmt output; the required rustfmt check is currently failing. REQUIRED CHANGE: run cargo fmt --all on the rebased branch and commit the formatter's edits across all touched Rust files (including the long calls/re-export and the import ordering in secret_device_store.rs). Verify with cargo fmt --all -- --check; it must exit 0, and the GitHub rustfmt check must be green.

What is good: the revised change is focused on the actual construction seams, routes OAuth completion and CLI consumers through a project-aware builder, preserves the conservative keyring default when no server key is configured, and adds useful regression coverage for env, project config, and durable key-file behavior. The workspace cargo-check job is green on this head.

…errors; config-file user-key not honored by all paths)

@animus-launchapp-gitprovider animus-launchapp-gitprovider Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

VERDICT: CHANGES REQUESTED

  1. animus/TASK-632 branch integration against main — exact symptom: GitHub reports mergeable: false for PR #340 after the synchronize event. REQUIRED CHANGE: rebase animus/TASK-632 onto the current main, resolve every conflict while preserving main's newer secret-store behavior, and push the rebased branch. Verify by fetching PR #340 again and confirming GitHub reports mergeable: true (and that the required checks run on the rebased head).

  2. crates/animus-mcp-oauth/src/config.rs:build_secret_store_at — offending code: fn build_secret_store_at(project_root: &Path, scoped_root: impl Into<std::path::PathBuf>) -> Arc<dyn SecretStore> {. REQUIRED CHANGE: run cargo fmt --all on the rebased branch and commit every formatter edit, including this signature and the long build_secret_store_for_project / build_backend_for_project calls and re-export touched by this PR. Verify with cargo fmt --all -- --check; it must exit 0, and the GitHub rustfmt check must conclude success (it currently concludes failure).

The project/global secret configuration plumbing and the focused OAuth regression test are directionally aligned with TASK-632; once the branch is conflict-free and formatter-clean, the remaining cargo/clippy checks can give a reliable signal on the implementation.

…errors; config-file user-key not honored by all paths)

@animus-launchapp-gitprovider animus-launchapp-gitprovider Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

VERDICT: CHANGES REQUESTED

  1. PR mergeability / animus/TASK-632 — exact symptom: GitHub currently reports mergeable: false against base main, so this head still cannot be merged after the requested rebase. REQUIRED CHANGE: rebase animus/TASK-632 onto the current main, resolve every conflict while preserving main's newer secret-store behavior, and force-push the rebased head. Verify by fetching PR #340 again and confirming it reports mergeable: true.

  2. crates/animus-mcp-oauth/src/config.rs (build_secret_store_at) — fn build_secret_store_at(project_root: &Path, scoped_root: impl Into<std::path::PathBuf>) -> Arc<dyn SecretStore> { remains unformatted, and the required rustfmt check is failing on head 666962126a83be9adfbdb89eb42c7b5a488d124a. REQUIRED CHANGE: run cargo fmt --all on the rebased branch and commit all formatter edits, including this signature and the long build_secret_store_for_project call. Verify with cargo fmt --all -- --check; it must exit 0, and the GitHub rustfmt check must rerun with conclusion success.

  3. crates/orchestrator-cli/src/services/operations/ops_secret.rs (handle_migrate) — let source = orchestrator_core::build_backend_for_project(&scope, scoped_root.to_path_buf(), source_name, project_root); and the matching target call remain in the pre-rustfmt layout while CI reports rustfmt: failure. REQUIRED CHANGE: include the formatter-produced multiline layout for both builder calls in the same formatting commit; do not hand-format only one file. Verify with cargo fmt --all -- --check and confirm no formatter diff remains.

The project-aware secret-store seam, OAuth regression coverage, and explicit headless key-source behavior are directionally aligned with TASK-632; once the branch is conflict-free and fully formatted, the substantive checks can provide a trustworthy signal.

…errors; config-file user-key not honored by all paths)

@animus-launchapp-gitprovider animus-launchapp-gitprovider Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

VERDICT: CHANGES REQUESTED

  1. crates/orchestrator-core/src/secret_device_store.rs / branch integration against main — exact symptom: GitHub reports "mergeable": false for current head 3d5f1aad77f1061528c5d873292b0f1b3bdad71f, so the updated implementation still cannot be integrated into the base branch. REQUIRED CHANGE: rebase animus/TASK-632 onto current main, resolve every conflict in the secret-store implementation while preserving main's newer behavior, and push the rebased result. Verify by fetching PR #340 again and confirming mergeable: true, then allow all required checks to complete on that exact rebased SHA.

  2. crates/animus-mcp-oauth/src/config.rs:build_secret_store_at — offending code: fn build_secret_store_at(project_root: &Path, scoped_root: impl Into<std::path::PathBuf>) -> Arc<dyn SecretStore> {; the required rustfmt check on head 3d5f1aad77f1061528c5d873292b0f1b3bdad71f concludes failure. REQUIRED CHANGE: run cargo fmt --all and commit the formatter-produced layout for this signature and every other touched Rust file, including the long project-aware builder calls and re-export/import ordering. Verify with cargo fmt --all -- --check exiting 0 and the GitHub rustfmt check concluding success on the pushed SHA.

  3. crates/orchestrator-cli/src/services/operations/ops_secret.rs:handle_migrate — offending code: let source = orchestrator_core::build_backend_for_project(&scope, scoped_root.to_path_buf(), source_name, project_root); (and the matching target call) remains in a layout rejected by rustfmt. REQUIRED CHANGE: include rustfmt's multiline rewrite for both build_backend_for_project calls in the same formatting commit rather than hand-fixing only the OAuth file. Verify with cargo fmt --all -- --check; expect no diff and exit status 0.

What is good: the project-aware secret-store seam, OAuth completion plumbing, conservative keyring fallback, and regression tests for durable env/config key material remain well aligned with TASK-632. Once the branch is conflict-free and formatter-clean, the in-progress cargo-check, dependency guardrail, and clippy jobs can provide a trustworthy substantive signal.

…errors; config-file user-key not honored by all paths)

@animus-launchapp-gitprovider animus-launchapp-gitprovider Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

VERDICT: CHANGES REQUESTED

  1. crates/orchestrator-core/src/secret_device_store.rs / animus/TASK-632 integration against main — exact symptom: GitHub reports "mergeable": false for current head 6b3aac806d8f58ae80c3d3f6e75e4408146f94c7, so the synchronized branch still cannot be integrated into the current base. REQUIRED CHANGE: rebase animus/TASK-632 onto current main, resolve every secret-store conflict while preserving main's newer key-source behavior, and push the rebased result. Verify by fetching PR #340 again and confirming mergeable: true, then require all checks to complete successfully on that exact rebased SHA.

  2. crates/animus-mcp-oauth/src/config.rs:build_secret_store_at — offending code: fn build_secret_store_at(project_root: &Path, scoped_root: impl Into<std::path::PathBuf>) -> Arc<dyn SecretStore> {; the required rustfmt check on the current head concludes failure. REQUIRED CHANGE: run cargo fmt --all and commit the complete formatter output across every touched Rust file, including this signature, the long project-aware builder calls, and re-export/import ordering. Verify with cargo fmt --all -- --check; it must exit 0 and the GitHub rustfmt check must conclude success.

  3. crates/orchestrator-cli/src/services/operations/ops_secret.rs:handle_migrate — offending code: let source = orchestrator_core::build_backend_for_project(&scope, scoped_root.to_path_buf(), source_name, project_root); (and the equivalent target call) remains in a layout rejected by rustfmt. REQUIRED CHANGE: commit rustfmt's multiline rewrite for both calls in the same formatting pass; do not hand-fix only the OAuth source. Verify with cargo fmt --all -- --check, expecting no formatter diff and exit status 0.

What is good: the project-aware secret-store seam, OAuth completion plumbing, conservative keyring fallback, and regression coverage for durable env/config key material remain well aligned with TASK-632. The workspace cargo-check is green on this head; once the branch is conflict-free and fully formatted, the remaining required checks can provide a trustworthy substantive signal.

…errors; config-file user-key not honored by all paths)
…errors; config-file user-key not honored by all paths)

@animus-launchapp-gitprovider animus-launchapp-gitprovider Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

VERDICT: CHANGES REQUESTED

  1. crates/orchestrator-core/src/secret_device_store.rs / animus/TASK-632 integration against main — exact symptom: GitHub reports "mergeable": false for current head 4dc762686bb9c3104d24d833103efa648d5694a9, so this synchronized branch still cannot be integrated into the current base. REQUIRED CHANGE: rebase animus/TASK-632 onto current main, resolve every secret-store conflict while preserving main's newer key-source behavior, and push the conflict-free result. Verify by fetching PR #340 again and confirming mergeable: true, then require every check to complete successfully on that exact rebased SHA.

  2. crates/animus-mcp-oauth/src/config.rs:build_secret_store_at — offending code: fn build_secret_store_at(project_root: &Path, scoped_root: impl Into<std::path::PathBuf>) -> Arc<dyn SecretStore> {; the required rustfmt check on head 4dc762686bb9c3104d24d833103efa648d5694a9 concludes failure. REQUIRED CHANGE: run cargo fmt --all and commit the complete formatter output across every touched Rust file, including this signature, the long project-aware builder calls, and re-export/import ordering. Verify with cargo fmt --all -- --check; it must exit 0 and the GitHub rustfmt check must conclude success.

  3. crates/orchestrator-cli/src/services/operations/ops_secret.rs:handle_migrate — offending code: let source = orchestrator_core::build_backend_for_project(&scope, scoped_root.to_path_buf(), source_name, project_root); (and the equivalent target call) remains in a layout rejected by rustfmt. REQUIRED CHANGE: commit rustfmt's multiline rewrite for both calls in the same formatting pass; do not hand-fix only the OAuth source. Verify with cargo fmt --all -- --check, expecting no formatter diff and exit status 0.

What is good: the project-aware secret-store seam, OAuth completion plumbing, conservative keyring fallback, and regression coverage for durable env/config key material remain well aligned with TASK-632. Workspace cargo-check, clippy, docs-sync, and the dependency guardrail are green on this head; once the branch is conflict-free and fully formatted, the remaining signal can be trusted.

…errors; config-file user-key not honored by all paths)

@animus-launchapp-gitprovider animus-launchapp-gitprovider Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

VERDICT: CHANGES REQUESTED

  1. crates/orchestrator-core/src/secret_device_store.rs / branch integration against main — exact symptom: GitHub reports "mergeable": false for PR #340 at current head c6a18f7d51c66a437df7907ad11bb99d34e65b55, so the synchronized branch still cannot be integrated with the base. REQUIRED CHANGE: rebase animus/TASK-632 onto current main, resolve every secret-store conflict while preserving main's newer key-source behavior, and push the rebased result. Verify by fetching PR #340 again and confirming mergeable: true, then require all checks to complete successfully on that exact rebased SHA.

  2. crates/animus-mcp-oauth/src/config.rs:build_secret_store_at — offending code: fn build_secret_store_at(project_root: &Path, scoped_root: impl Into<std::path::PathBuf>) -> Arc<dyn SecretStore> {; the required rustfmt check on head c6a18f7d51c66a437df7907ad11bb99d34e65b55 concludes failure. REQUIRED CHANGE: run cargo fmt --all and commit the formatter-produced edits across every touched Rust file, including this signature, long project-aware builder calls, and import/re-export ordering. Verify with cargo fmt --all -- --check; it must exit 0 and the GitHub rustfmt check must conclude success.

  3. crates/orchestrator-cli/src/services/operations/ops_secret.rs:handle_migrate — offending code: let source = orchestrator_core::build_backend_for_project(&scope, scoped_root.to_path_buf(), source_name, project_root); (and the matching target call) remains in a layout rejected by rustfmt. REQUIRED CHANGE: include rustfmt's multiline rewrite for both build_backend_for_project calls in the same formatting commit rather than hand-fixing only the OAuth source. Verify with cargo fmt --all -- --check, expecting no formatter diff and exit status 0.

What is good: the project-aware secret-store seam, OAuth completion plumbing, conservative keyring fallback, and regression coverage for durable env/config key material remain aligned with TASK-632; workspace cargo-check and the dependency guardrail are green on this head. Once the branch is conflict-free and formatter-clean, the remaining checks can provide a reliable substantive signal.

…errors; config-file user-key not honored by all paths)
…errors; config-file user-key not honored by all paths)
…errors; config-file user-key not honored by all paths)

@animus-launchapp-gitprovider animus-launchapp-gitprovider Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

VERDICT: CHANGES REQUESTED

  1. crates/animus-mcp-oauth/src/config.rs:build_secret_store_atfn build_secret_store_at(project_root: &Path, scoped_root: impl Into<std::path::PathBuf>) -> Arc<dyn SecretStore> { remains unformatted, and the required rustfmt check is failing on head a44c223b65d5b234024ae6ef499862ed2710cb5d. REQUIRED CHANGE: run cargo fmt --all from the workspace root and commit/push the complete formatter output for every touched Rust file; do not hand-format only this signature. Verify with cargo fmt --all -- --check (expected exit code 0) and confirm the GitHub rustfmt check succeeds on the new head SHA.

The project-aware secret-store construction, focused OAuth regression coverage, and propagation through the CLI call sites are directionally good and directly address the task's headless/config-file key-source gap.

…errors; config-file user-key not honored by all paths)

@animus-launchapp-gitprovider animus-launchapp-gitprovider Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

VERDICT: CHANGES REQUESTED

  1. crates/animus-mcp-oauth/src/config.rs:build_secret_store_at — offending code: fn build_secret_store_at(project_root: &Path, scoped_root: impl Into<std::path::PathBuf>) -> Arc<dyn SecretStore> {; the required rustfmt check still concludes failure on head 22762f2a141aab1492fad2ac9ae13f130306254d. REQUIRED CHANGE: run cargo fmt --all at the workspace root and commit/push the complete formatter output across every touched Rust file, including this signature and the long project-aware secret-store builder calls. Verify with cargo fmt --all -- --check exiting 0 and GitHub's rustfmt check concluding success on the new head SHA.

  2. crates/orchestrator-core/src/secret_device_store.rs / branch integration — exact symptom: GitHub reports mergeable: false for PR #340 against main, so this head cannot be integrated. REQUIRED CHANGE: rebase animus/TASK-632 onto current main, resolve all conflicts while preserving main's newer secret-key behavior and this PR's project-aware configuration plumbing, then push the rebased branch. Verify by fetching PR #340 and confirming mergeable: true, with all required checks green on that exact SHA.

What is good: the change targets the correct secret-store construction seams, carries project configuration into OAuth and CLI paths, preserves conservative fallback behavior, and adds focused regression coverage for durable environment/config-file key material.

…errors; config-file user-key not honored by all paths)
…errors; config-file user-key not honored by all paths)

@animus-launchapp-gitprovider animus-launchapp-gitprovider Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

VERDICT: CHANGES REQUESTED

  1. Branch integration / crates/orchestrator-core/src/secret_device_store.rs (build_secret_store_for_project): exact symptom: GitHub reports mergeable: false, and the current head 5d959f5738c024861b31336bc3dc820d0506fd9b is still 145 commits behind main (git rev-list --left-right --count origin/main...HEAD => 145 37; git merge-base --is-ancestor origin/main HEAD exits 1). REQUIRED CHANGE: rebase animus/TASK-632 onto the current main, resolve the secret-store conflicts in favor of main's newer behavior while retaining this PR's focused project-aware config plumbing, and force-push the rebased branch. Verify with git fetch origin main && git merge-base --is-ancestor origin/main HEAD (expected exit 0), confirm GitHub reports the PR mergeable, then wait for every required check to complete successfully.

The latest update does appear to have fixed the prior formatting defect: git diff --check origin/main...HEAD now exits 0, and the added OAuth/project-key-file coverage directly exercises the reported headless configuration path. The remaining integration conflict prevents this revision from being safely merged.

…errors; config-file user-key not honored by all paths)

@animus-launchapp-gitprovider animus-launchapp-gitprovider Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

VERDICT: CHANGES REQUESTED

  1. crates/animus-mcp-oauth/src/config.rs (build_secret_store_at) — the new signature is committed as the single unformatted line fn build_secret_store_at(project_root: &Path, scoped_root: impl Into<std::path::PathBuf>) -> Arc<dyn SecretStore> {, and the required rustfmt check is failing on head aaf72cba82a95c4f76edb3050f9940a36cd816b7. REQUIRED CHANGE: run the workspace formatter and commit its output on this branch (including rustfmt's multiline rewrite of build_secret_store_at and any other changed Rust blocks it reports). Verification: run cargo fmt --all -- --check; it must exit 0, and the GitHub rustfmt check must complete successfully before merge.

The substantive direction is good: the OAuth path now uses the project-aware secret-store builder, project/global configuration precedence is covered, and the added reopen tests exercise the separate OAuth-completion invocation behavior rather than only an in-memory round trip.

…errors; config-file user-key not honored by all paths)

@animus-launchapp-gitprovider animus-launchapp-gitprovider Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

VERDICT: CHANGES REQUESTED

  1. crates/animus-mcp-oauth/src/config.rs:build_secret_store_at — offending code: fn build_secret_store_at(project_root: &Path, scoped_root: impl Into<std::path::PathBuf>) -> Arc<dyn SecretStore> {; the required rustfmt check on head 337d354600a96fd103e252205e3dfbdfd993bb59 concludes failure, and this signature plus the long builder call remain in the pre-rustfmt layout. REQUIRED CHANGE: run cargo fmt --all on the existing animus/TASK-632 branch and commit the complete formatter output across every touched Rust file, including this function and both build_backend_for_project calls in crates/orchestrator-cli/src/services/operations/ops_secret.rs::handle_migrate. Verify with cargo fmt --all -- --check; it must exit 0, then push and confirm GitHub's rustfmt check concludes success on the new head SHA.

What is good: the substantive implementation remains focused on TASK-632's missing project-aware secret-store construction, preserves the conservative fallback behavior, and includes broad regression coverage for durable env/config key material and OAuth store reopening.

…errors; config-file user-key not honored by all paths)

@animus-launchapp-gitprovider animus-launchapp-gitprovider Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

VERDICT: CHANGES REQUESTED

  1. crates/animus-mcp-oauth/src/config.rs:61 (build_secret_store_at) — fn build_secret_store_at(project_root: &Path, scoped_root: impl Into<std::path::PathBuf>) -> Arc<dyn SecretStore> { remains in the unformatted one-line form, and the required rustfmt check is failing on head e820e82a7fdbbeb38b2be478cc517d82f352c4a7. REQUIRED CHANGE: run cargo fmt --all on this exact branch and commit/push rustfmt's multiline rewrite of this function signature and the long build_secret_store_for_project call immediately below it. Verify with cargo fmt --all -- --check; it must exit 0, and GitHub's rustfmt check must complete successfully on the pushed SHA.

  2. crates/orchestrator-cli/src/services/operations/ops_secret.rs:66 (handle_migrate) — orchestrator_core::build_backend_for_project(&scope, scoped_root.to_path_buf(), source_name, project_root); and the equivalent target call remain on overlong lines rejected by rustfmt. REQUIRED CHANGE: include rustfmt's multiline rewrites of both build_backend_for_project calls in the same formatting commit; do not hand-format only one call or omit formatter changes in another touched Rust file. Verify with cargo fmt --all -- --check (expected exit code 0) and confirm the GitHub rustfmt check is green before requesting another review.

The project-aware secret-store selection and its OAuth regression coverage remain focused on TASK-632 and are the right substantive direction; this update is blocked only because the formatter fix requested previously still has not landed completely.

…errors; config-file user-key not honored by all paths)

@animus-launchapp-gitprovider animus-launchapp-gitprovider Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

VERDICT: CHANGES REQUESTED

  1. crates/animus-mcp-oauth/src/config.rs and crates/orchestrator-core/src/secret_keysource.rs (branch integration against main) — exact symptom: GitHub reports "mergeable": false, and a local git merge-tree --write-tree review/main review/head reports CONFLICT (content) in both named files on head 22890d676df14873e0d0045fc67d367ec59476fe. REQUIRED CHANGE: rebase animus/TASK-632 onto the current main and resolve both conflicts, preserving current main's secret-source behavior while retaining this task's project/global configuration selection. Verify with git merge-tree --write-tree origin/main HEAD exiting 0, then fetch PR #340 and confirm it reports mergeable: true.

  2. crates/animus-mcp-oauth/src/config.rs:build_secret_store_at and crates/orchestrator-cli/src/services/operations/ops_secret.rs:handle_migrate — offending code remains fn build_secret_store_at(project_root: &Path, scoped_root: impl Into<std::path::PathBuf>) -> Arc<dyn SecretStore> { and orchestrator_core::build_backend_for_project(&scope, scoped_root.to_path_buf(), source_name, project_root);; the required rustfmt check concludes failure on this exact head. REQUIRED CHANGE: run cargo fmt --all after the rebase and commit the complete formatter output, including the multiline function signature, the build_secret_store_for_project call, and both build_backend_for_project calls rather than another partial formatting edit. Verify with cargo fmt --all -- --check exiting 0 and the GitHub rustfmt job concluding success on the pushed SHA.

What is good: the project-aware construction seam, OAuth completion plumbing, conservative fallback behavior, and regression coverage for durable env/config key material remain aligned with TASK-632; workspace cargo-check and docs-sync already pass on this head.

…errors; config-file user-key not honored by all paths)

@animus-launchapp-gitprovider animus-launchapp-gitprovider Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

VERDICT: CHANGES REQUESTED

  1. crates/animus-mcp-oauth/src/config.rs:build_secret_store and crates/orchestrator-core/src/secret_keysource.rs:UserKeySource::resolve — exact symptom: GitHub reports this head (156e32bc3eefb4a6273223b41508a0eb9d58536c) as mergeable: false against main; the branch still replaces main's current build_secret_store implementation and carries a divergent UserKeySource::resolve (for example, the head contains if !raw.trim().is_empty() while current main has advanced independently in the same function). REQUIRED CHANGE: rebase animus/TASK-632 onto current main, resolve the content conflicts in these functions by retaining main's newer secret-source/config-source behavior and then reapply only TASK-632's project-aware secret-store selection (build_secret_store_for_project) and headless key-file handling. Do not merge either whole-file side. Verify with git merge-tree --write-tree origin/main HEAD (expected: exit 0 and a tree id, with no conflict diagnostics), then run cargo fmt --all -- --check, cargo test -p orchestrator-core -p animus-mcp-oauth, and cargo check --workspace (all expected to exit 0). Push the resolved rebase and wait for every required GitHub check to complete successfully.

The project-aware OAuth store construction, durable key-file test coverage, and focused documentation are directionally strong and address the task's core failure mode. The PR cannot be merged until it is conflict-free and the currently pending Rust checks complete green.

…errors; config-file user-key not honored by all paths)

@animus-launchapp-gitprovider animus-launchapp-gitprovider Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

VERDICT: CLOSE

  1. crates/animus-mcp-oauth/src/config.rs:build_secret_store and crates/orchestrator-core/src/secret_keysource.rs:UserKeySource::resolve — GitHub reports the updated head as "mergeable": false, "rebaseable": false, "mergeable_state": "dirty"; this means the synchronized branch still conflicts with current main and cannot be safely integrated. REQUIRED CHANGE: recreate or rebase the TASK-632 change on current main (6306625cc6bb4d6a562a3290bb15c38135c045ec), manually preserve main's newer secret-source/config-source behavior in those functions, and reapply only the project-aware secret-store selection and headless key-file handling rather than accepting either whole-file side. Verify with git merge-tree --write-tree origin/main HEAD (must exit successfully without conflicts), then run cargo fmt --all -- --check, cargo test -p orchestrator-core -p animus-mcp-oauth, and cargo check --workspace; all commands and required GitHub checks must succeed.

The intended implementation is otherwise well targeted: it routes OAuth, secret CLI, doctor, and daemon secret-store construction through project-aware factories, adds direct regression coverage for separate OAuth completion processes, and documents the headless key-source precedence clearly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant